package com.coocaa.ops.api.v1.internal.service;

import com.coocaa.ops.common.core.base.model.R;

/**
 * @author bijiahao
 * @date : 2019/6/21.
 * @description 提供给管理后台-进行缓存的查询等操作
 */
public interface ICacheInternalOpsService {
    /**
     * 获取缓存key类型
     *
     * @return
     */
    R listKeyType();

    /**
     * 获取缓存key列表
     *
     * @param key
     * @param page
     * @param pageSize
     * @param matchPattern
     * @return
     */
    R listKey(String key, String cacheEnv, Integer page, Integer pageSize, Integer matchPattern);

    /**
     * 获取缓存key列表，新方式
     *
     * @param key
     * @param scanCount
     * @param pageSize
     * @param matchPattern
     * @return
     */
    R listKeyV2(String key, String cacheEnv, Integer scanCount, Integer pageSize, Integer matchPattern);


    /**
     * 获取指定缓存的值
     *
     * @param key
     * @return
     */
    R getValByKey(String key, String cacheEnv);

    /**
     * 删除指定缓存key
     *
     * @param keys
     * @param matchPattern
     * @return
     */
    R delByKey(String[] keys, Integer matchPattern, String cacheEnv);

    /**
     * 获取存活时间
     *
     * @param key
     * @return
     */
    R ttl(String key, String cacheEnv);


}
